﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using System.Collections.ObjectModel;

namespace ProjectEdificio
{
    /// <summary>
    /// Lógica de interacción para NewCochera.xaml
    /// </summary>
    public partial class NewCochera : Window
    {
        private Cochera coch = null;
        private BDManagment bdm = null;
        private int IDInqui = 0;
        private ObservableCollection<Cochera> cocherasDisponibles = null;
        private DateTime desde;
        private DateTime hasta;

        public NewCochera(int IDInquilino, DateTime desdeInquilino, DateTime hastaInquilino)
        {
            InitializeComponent();
            bdm = BDManagment.getInstance();
            IDInqui = IDInquilino;

            this.desde = desdeInquilino;
            this.hasta = hastaInquilino;

            cocherasDisponibles = bdm.getListaCocheras();
            int cont = 0;
            foreach (Cochera co in cocherasDisponibles)
            {
                if (co.MontoCochera == 0)
                {
                    cont++;
                    ComboBoxItem item = new ComboBoxItem();
                    item.Content = co.NumCochera;
                    comboBoxCocherasDisponibles.Items.Add(item);
                }
            }

            if (cont == 0)
            {
                this.groupBoxCocheras.Visibility = Visibility.Collapsed;
                this.NoDisponibles.Visibility = Visibility.Visible;
                this.buttonAceptar.Visibility = Visibility.Collapsed;
                this.buttonCancelar.Visibility = Visibility.Collapsed;
            }

            this.datePickerDesdeCochera.Text = DateTime.Now.ToString();
            this.datePickerHastaCochera.Text = hasta.ToString();
        }

        private void buttonAceptar_Click(object sender, RoutedEventArgs e)
        {
            if (comboBoxCocherasDisponibles.SelectedItem != null && datePickerDesdeCochera.Text != string.Empty && datePickerHastaCochera.Text != string.Empty && textBoxMontoCochera.Text != string.Empty)
            {
                DateTime desdeCochera = DateTime.Parse(datePickerDesdeCochera.ToString());
                DateTime hastaCochera = DateTime.Parse(datePickerHastaCochera.ToString());
                bool flag = true;
                if (desdeCochera <= DateTime.Now && hastaCochera >= DateTime.Now)
                {
                    if (desdeCochera < desde)
                    {
                        MessageBox.Show("El alquiler de cocheras solo se puede efectuar dentro del periodo de estadía del Inquilino, por favor Verifique las FECHAS de alquiler de COCHERA");
                        flag = false;
                    }
                    if (hastaCochera > hasta)
                    {
                        MessageBox.Show("El alquiler de cocheras solo se puede efectuar dentro del periodo de estadía del Inquilino, por favor Verifique las FECHAS de alquiler de COCHERA");
                        flag = false;
                    }
                    if (flag)
                    {
                        bdm.addCochera(new Cochera(IDInqui, int.Parse(comboBoxCocherasDisponibles.Text), int.Parse(textBoxMontoCochera.Text), desdeCochera, hastaCochera));
                        this.Close();
                    }
                }
                else
                {
                    MessageBox.Show("Controle las Fechas!");
                }

            }
            else
            {
                MessageBox.Show("Faltan datos!");
            }
        }

        private void numerosTextBox_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.Key >= Key.D0 && e.Key <= Key.D9 || e.Key >= Key.NumPad0 && e.Key <= Key.NumPad9)
                e.Handled = false;
            else
                e.Handled = true;
        }

        private void buttonCancelar_Click(object sender, RoutedEventArgs e)
        {
            this.Close();
        }
    }
}
